The PGC3 MDD study is including the following analyses to identify genes associated with MDD:
##########
# Nearest gene
##########
library(data.table)
# Read in GWAS results
# Currently we are using results only for lead indepdendant associations from COJO
# I think this is fine
indep_hits<-fread('../../docs/tables/meta_snps_full_eur.cojo.txt')
# Link SNPs to nearest gene
# Insert nearest gene information
library(biomaRt)
ensembl = useEnsembl(biomart="ensembl", dataset="hsapiens_gene_ensembl", GRCh=37)
Genes<-getBM(attributes=c('external_gene_name','chromosome_name','start_position','end_position'), mart = ensembl)
window<-50000
for(i in 1:nrow(indep_hits)){
Genes_i<-Genes[Genes$start_position < (indep_hits$BP[i] + window) & Genes$end_position > (indep_hits$BP[i] - window) & Genes$chromosome_name == indep_hits$CHR[i],]
if(nrow(Genes_i) != 0){
gene_string<-NULL
for(j in 1:nrow(Genes_i)){
if(indep_hits$BP[i] > Genes_i$start_position[j] & indep_hits$BP[i] < Genes_i$end_position[j]){
gene_string<-rbind(gene_string, data.frame(ID=Genes_i$external_gene_name[j],
Dist=0,
Pos=NA))
}
if(indep_hits$BP[i] < Genes_i$start_position[j]){
gene_string<-rbind(gene_string, data.frame(ID=Genes_i$external_gene_name[j],
Dist=abs(indep_hits$BP[i] - Genes_i$start_position[j]),
Pos='-'))
}
if(indep_hits$BP[i] > Genes_i$end_position[j]){
gene_string<-rbind(gene_string, data.frame(ID=Genes_i$external_gene_name[j],
Dist=abs(indep_hits$BP[i] - Genes_i$end_position[j]),
Pos='+'))
}
}
gene_string<-gene_string[order(gene_string$Dist),]
indep_hits$NearestGene[i]<-as.character(gene_string$ID[1])
} else {
indep_hits$NearestGene[i]<-NA
}
}
##########
# SNP-finemapping
##########
# Read in finemapping results from Joni. This table shows genes implicated by the finemapping results, by a gene containing the entire 95% credible set.
finemap<-fread('../../docs/tables/finemapping/Locus_FineMapping_Full_Results.csv')
finemap_genes<-unlist(strsplit(finemap$High.Confidence.Genes.Names, ','))
finemap_genes<-finemap_genes[finemap_genes != '-']
##########
# FastBAT
##########
# Read in FastBAT results
fastbat<-fread('../../docs/tables/fastBAT/mdd_fastbat_AllgeneMatrix.gene.fastbat')
fastbat$P.FDR<-p.adjust(fastbat$Pvalue, method='fdr')
##########
# H-MAGMA
##########
hmagma<-fread('../../docs/tables/H-MAGMA/PGC_MDD_Results_mar2022.csv')
# Exclude astrocytes
hmagma_noAstr<-hmagma[hmagma$Analysis != 'Astrocytes',]
# Apply FDR correction across all tests
hmagma_noAstr$P.FDR<-p.adjust(hmagma_noAstr$P, method = 'fdr')
Genes<-getBM(attributes=c('external_gene_name','ensembl_gene_id'), mart = ensembl)
Genes<-Genes[!duplicated(Genes$ensembl_gene_id),]
hmagma_noAstr<-merge(hmagma_noAstr, Genes, by.x='GENE', by.y='ensembl_gene_id')
##########
# TWAS
##########
twas<-fread('../../docs/tables/twas/PGC_MDD3_twas_AllTissues_GW.txt')
twas_sig<-twas[twas$TWAS.P < 3.685926e-08,]
##########
# Colocalisation
##########
coloc<-read.csv('../../docs/tables/twas/PGC_MDD3_TWAS_colocalisation.csv')
coloc_sig<-coloc[coloc$COLOC.PP4 > 0.8,]
##########
# FOCUS
##########
focus<-read.csv('../../docs/tables/twas/PGC_MDD3_TWAS.TWSig.FOCUS.results.csv')
fusion <- fread("../../docs/tables/twas/PGC_MDD3_twas_AllTissues_TWSig_CLEAN.txt")
fusion<-fusion[,c('PANEL','PANEL_clean_short','PANEL_clean'), with=F]
fusion<-fusion[!duplicated(fusion),]
focus<-merge(focus, fusion, by.x='SNP.weight.Set', by.y='PANEL_clean_short')
focus_sig<-focus[focus$FOCUS_pip > 0.5,]
##########
# Expression analysis based high confidence genes
##########
expression_highconf_res<-fread('../../docs/tables/twas/PGC3_MDD_TWAS_HighConf_results.csv')
##########
# SMR
##########
# Read in the SMR results
smr_res<-list()
smr_res[['eQTLGen_Blood']]<-fread('../../docs/tables/twas/eqtlgen_smr_res_GW_withIDs.csv')
names(smr_res[['eQTLGen_Blood']])[names(smr_res[['eQTLGen_Blood']]) == 'GeneSymbol']<-'HGNCName'
smr_res[['eQTLGen_Blood']]$eQTL_source<-'eQTLGen_Blood'
tissue<-c("Basalganglia","Cerebellum","Cortex","Hippocampus","Spinalcord")
for(tissue_i in tissue){
smr_res[[tissue_i]]<-fread(paste0('../../docs/tables/twas/metabrain_',tissue_i,'_smr_res_GW_withIDs.csv'))
smr_res[[tissue_i]]$eQTL_source<-paste0('MetaBrain_',tissue_i)
}
smr_res_dat<-do.call(rbind, smr_res)
smr_res_dat$p_SMR_fdr_all<-p.adjust(smr_res_dat$p_SMR, method="fdr")
smr_res_dat_sig<-smr_res_dat[smr_res_dat$p_SMR_fdr_all < 0.05,]
##########
# HEIDI
##########
heidi<-smr_res_dat_sig[smr_res_dat_sig$p_HEIDI > 0.05,]
##########
# PWAS
##########
# For no just read in the ROSMAP results
pwas<-NULL
for(i in 1:22){
if(i != 6){
pwas<-rbind(pwas, fread(paste0('../../docs/tables/pwas/PGC_MDD3_pwas_rosmap_chr',i)))
} else {
pwas<-rbind(pwas, fread(paste0('../../docs/tables/pwas/PGC_MDD3_pwas_rosmap_chr',i)))
pwas<-rbind(pwas, fread(paste0('../../docs/tables/pwas/PGC_MDD3_pwas_rosmap_chr',i,'.MHC')))
}
}
pwas$TWAS.P.FDR<-p.adjust(pwas$TWAS.P)
pwas$ID<-gsub('.*\\.','', pwas$ID)
# Read in PWAS and SMR results for all significant ROSMAP PWAS assoc results
pwas_smr_rosmap_banner<-fread('../../docs/tables/pwas/rosmap_banner_pwas_smr_results.csv')
########
# PsyOPS
########
psyops <- fread('../../docs/tables/psyops/psyops_full_eur.cojo.txt')
psyops_prioritised<-NULL
for(i in unique(psyops$lead_variant)){
tmp<-psyops[psyops$lead_variant == i,]
tmp<-tmp[tmp$PsyOPS_score == max(tmp$PsyOPS_score),]
tmp<-tmp[tmp$distance == min(tmp$distance),]
psyops_prioritised<-rbind(psyops_prioritised, tmp)
}
psyops_genes <- psyops_prioritised$gene
This plot will show the number of genes returned by each analysis and the overlap of each analysis
# Create data.frame listing genes with T/F indicating whether it was supported by each analysis
gene_overlap<-list()
gene_overlap[['Fine-mapping']]<-finemap_genes
gene_overlap[['Expression']]<-expression_highconf_res$ID
gene_overlap[['Protein']]<-pwas_smr_rosmap_banner$ID[which(pwas_smr_rosmap_banner$banner_replicated & pwas_smr_rosmap_banner$rosmap.causal & pwas_smr_rosmap_banner$smr.causal)]
gene_overlap[['Nearest Gene']]<-indep_hits$NearestGene[!is.na(indep_hits$NearestGene)]
gene_overlap[['fastBAT']]<-fastbat$Gene[fastbat$P.FDR < 0.05]
gene_overlap[['H-MAGMA']]<-unique(hmagma_noAstr$external_gene_name[hmagma_noAstr$P.FDR < 0.05])
gene_overlap[['PsyOPS']]<-psyops_genes
library(UpSetR)
png('../../docs/figures/gene_consensus_upset_dense.png', units = 'px', res=300, height=1500, width=2500)
upset(fromList(gene_overlap), nsets=10, order.by = "freq")
dev.off()
## quartz_off_screen
## 2
gene_overlap<-list()
gene_overlap[['Fine-mapping']]<-finemap_genes
gene_overlap[['Expression']]<-expression_highconf_res$ID
gene_overlap[['Protein']]<-pwas_smr_rosmap_banner$ID[which(pwas_smr_rosmap_banner$banner_replicated & pwas_smr_rosmap_banner$rosmap.causal & pwas_smr_rosmap_banner$smr.causal)]
gene_overlap[['PsyOPS']]<-psyops_genes
png('../../docs/figures/gene_consensus_upset_highconf.png', units = 'px', res=300, height=1400, width=1500)
upset(fromList(gene_overlap), nsets=10, order.by = "freq")
dev.off()
## quartz_off_screen
## 2
High-confidence genes
High-confidence genes
# Define high confidence associations
# Genes implicated by finemapping
finemap_highconf<-finemap_genes
# Genes implicated by TWAS, colocalisation and FOCUS from any panel
expression_highconf<-expression_highconf_res$ID
# Genes implicated by PWAS, SMR, coloc and HEIDI in ROSMAP and Banner
protein_highconf<-pwas_smr_rosmap_banner$ID[which(pwas_smr_rosmap_banner$banner_replicated & pwas_smr_rosmap_banner$rosmap.causal & pwas_smr_rosmap_banner$smr.causal)]
high_conf<-unique(c(finemap_highconf, expression_highconf, protein_highconf))
high_conf_tab<-data.frame(ID=high_conf)
# finemap
# Joni said he used the same gene list as David Howard (fastBAT)
high_conf_tab$finemap<-'NA'
for(i in 1:nrow(high_conf_tab)){
if(high_conf_tab$ID[i] %in% fastbat$Gene | high_conf_tab$ID[i] %in% finemap_genes){
if(high_conf_tab$ID[i] %in% finemap_genes){
high_conf_tab$finemap[i]<-'Sig'
} else {
high_conf_tab$finemap[i]<-'Non-Sig'
}
}
}
# expression
high_conf_tab$expression<-'NA'
for(i in 1:nrow(high_conf_tab)){
if(!(high_conf_tab$ID[i] %in% twas$ID)){
high_conf_tab$expression[i]<-'NA'
} else {
if(!(high_conf_tab$ID[i] %in% expression_highconf_res$ID)){
high_conf_tab$expression[i]<-'Non-Sig'
} else {
if(expression_highconf_res$`SNP-weight Set`[expression_highconf_res$ID == high_conf_tab$ID[i]] == "CMC DLPFC Splicing"){
high_conf_tab$expression[i]<-'Sig'
} else {
if(expression_highconf_res$TWAS.Z[expression_highconf_res$ID == high_conf_tab$ID[i]] > 0){
high_conf_tab$expression[i]<-'Pos'
} else {
high_conf_tab$expression[i]<-'Neg'
}
}
}
}
}
# protein
high_conf_tab$protein<-'NA'
for(i in 1:nrow(high_conf_tab)){
if(!(high_conf_tab$ID[i] %in% pwas$ID)){
high_conf_tab$protein[i]<-'NA'
} else {
if(!(high_conf_tab$ID[i] %in% pwas_smr_rosmap_banner$ID[which(pwas_smr_rosmap_banner$banner_replicated & pwas_smr_rosmap_banner$rosmap.causal & pwas_smr_rosmap_banner$smr.causal)])){
high_conf_tab$protein[i]<-'Non-Sig'
} else {
if(pwas_smr_rosmap_banner$rosmap.TWAS.Z[pwas_smr_rosmap_banner$ID == high_conf_tab$ID[i]] > 0){
high_conf_tab$protein[i]<-'Pos'
} else {
high_conf_tab$protein[i]<-'Neg'
}
}
}
}
# fastBAT
high_conf_tab$fastBAT<-'NA'
for(i in 1:nrow(high_conf_tab)){
if(high_conf_tab$ID[i] %in% fastbat$Gene){
if(high_conf_tab$ID[i] %in% fastbat$Gene[fastbat$P.FDR < 0.05]){
high_conf_tab$fastBAT[i]<-'Sig'
} else {
high_conf_tab$fastBAT[i]<-'Non-Sig'
}
}
}
# hmagma
high_conf_tab$hmagma<-'NA'
for(i in 1:nrow(high_conf_tab)){
if(high_conf_tab$ID[i] %in% hmagma_noAstr$external_gene_name){
if(high_conf_tab$ID[i] %in% hmagma_noAstr$external_gene_name[hmagma_noAstr$P.FDR < 0.05]){
high_conf_tab$hmagma[i]<-'Sig'
} else {
high_conf_tab$hmagma[i]<-'Non-Sig'
}
}
}
# PsyOPS
high_conf_tab$psyops<-'NA'
for(i in 1:nrow(high_conf_tab)){
if(high_conf_tab$ID[i] %in% psyops$gene){
if(high_conf_tab$ID[i] %in% psyops_genes){
high_conf_tab$psyops[i]<-'Sig'
} else {
high_conf_tab$psyops[i]<-'Non-Sig'
}
}
}
# Order genes by the number of analyses indicating them as high confidence.
high_conf_tab_log<-high_conf_tab[,-1]
high_conf_tab_log[high_conf_tab_log == 'NA']<-'F'
high_conf_tab_log[high_conf_tab_log == 'Sig']<-'T'
high_conf_tab_log[high_conf_tab_log == 'Non-Sig']<-'F'
high_conf_tab_log[high_conf_tab_log == 'Pos']<-'T'
high_conf_tab_log[high_conf_tab_log == 'Neg']<-'T'
high_conf_tab_log<-data.frame(sapply( high_conf_tab_log, as.logical))
high_conf_tab_log[is.na(high_conf_tab_log)]<-T
high_conf_tab_log$sum<-rowSums(high_conf_tab_log[,1:3])
high_conf_tab<-high_conf_tab[order(-high_conf_tab_log$sum, high_conf_tab$ID),]
high_conf_tab$ID<-factor(high_conf_tab$ID, levels = high_conf_tab$ID)
names(high_conf_tab)<-c('ID','Fine-mapping','Expression','Protein','fastBAT','H-MAGMA','PsyOPS')
high_conf_tab_melt<-melt(as.data.table(high_conf_tab), id.vars='ID')
high_conf_tab_melt$value<-factor(high_conf_tab_melt$value, levels=c('Non-Sig','Sig','Pos','Neg','NA'))
high_conf_tab_melt$ID<-factor(high_conf_tab_melt$ID, levels=rev(levels(high_conf_tab$ID)))
library(ggplot2)
library(cowplot)
png('../../docs/figures/gene_con_heatmap.png', units = 'px', res=300, height=14000, width=2800)
ggplot(data = high_conf_tab_melt, aes(x='1', y = ID, fill=value)) +
theme_minimal_grid(color = "white") +
geom_tile(colour = 'black', width=1.5) +
scale_fill_manual(values=c('#FFFFFF','#33FF33','#FF6666','#3399FF','#CCCCCC'), drop=F) +
theme(axis.text.x = element_text(angle = 45, hjust = 1),plot.title = element_text(hjust = 0.5)) +
labs(x ='', y = "", title='', fill='') +
facet_grid(~ variable) +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
strip.background = element_rect(color="black", fill="grey95", size=0.1, linetype="solid"))
dev.off()
## quartz_off_screen
## 2
High-confidence genes
This will give some indication of how fine-mapped variants may affect gene expression and protein levels, and may also give clarity for associations that have a different direction of effect in the TWAS and PWAS (which is still the case for the GOPC gene).
###
# Create a dataframe containing gene ID, PANEL, Method and Z scores for all expression and protein analyses.
###
all_func_res<-NULL
# TWAS
twas_tmp<-twas[,c('PANEL','ID','TWAS.Z'), with=F]
twas_tmp$Sig<-twas$TWAS.P < 3.685926e-08
twas_tmp$Coloc<-twas$COLOC.PP4 > 0.8
names(twas_tmp)<-c('Panel','ID','Z','Sig','Coloc')
twas_tmp$Method<-'FUSION'
twas_tmp$Type<-'Expr.'
twas_tmp$Type[grepl('SPLIC',twas_tmp$Panel)]<-'Splice'
# Retain only the most significant assoc for each gene within PANEL (only relevent for splice panel)
twas_tmp<-twas_tmp[order(-abs(twas_tmp$Z)),]
twas_tmp<-twas_tmp[!duplicated(paste0(twas_tmp$Panel, twas_tmp$ID)),]
twas_tmp$Tissue<-NA
twas_tmp$Tissue[!grepl('Adrenal|BLOOD|Blood|Thyroid',twas_tmp$Panel)]<-'Brain'
twas_tmp$Tissue[grepl('BLOOD|Blood',twas_tmp$Panel)]<-'Blood'
twas_tmp$Tissue[grepl('Adrenal|Thyroid',twas_tmp$Panel)]<-'HPA/HPT'
twas_tmp<-merge(twas_tmp, focus_sig[,c('ID','PANEL','FOCUS_pip')], by.x=c('Panel','ID'), by.y=c('PANEL','ID'), all.x=T)
twas_tmp$FOCUS[twas_tmp$FOCUS_pip > 0.5]<-T
twas_tmp$FOCUS[twas_tmp$FOCUS_pip < 0.5 | is.na(twas_tmp$FOCUS_pip)]<-F
twas_tmp<-twas_tmp[order(-twas_tmp$FOCUS_pip),]
twas_tmp<-twas_tmp[!duplicated(paste0(twas_tmp$Panel, twas_tmp$ID)),]
twas_tmp$FOCUS_pip<-NULL
all_func_res<-rbind(all_func_res, twas_tmp)
# SMR expression
smr_res_dat$Z<-smr_res_dat$b_SMR/smr_res_dat$se_SMR
smr_res_dat$Sig<-smr_res_dat$p_SMR_fdr_all < 0.05
smr_res_dat$Coloc<-smr_res_dat$p_HEIDI > 0.05
smr_tmp<-smr_res_dat[,c('eQTL_source','HGNCName','Z','Sig','Coloc'), with=F]
names(smr_tmp)<-c('Panel','ID','Z','Sig','Coloc')
smr_tmp$Method<-'SMR'
smr_tmp$Type<-'Expr.'
smr_tmp$Tissue<-NA
smr_tmp$Tissue[!grepl('eQTLGen_Blood',smr_tmp$Panel)]<-'Brain'
smr_tmp$Tissue[grepl('eQTLGen_Blood',smr_tmp$Panel)]<-'Blood'
smr_tmp$FOCUS<-F
all_func_res<-rbind(all_func_res, smr_tmp)
# PWAS
pwas_smr_rosmap_banner$rosmap.sig<-T
pwas_rosmap_tmp<-pwas_smr_rosmap_banner[,c('ID','rosmap.TWAS.Z','rosmap.sig','rosmap.causal'), with=F]
pwas_rosmap_tmp$PANEL<-'ROSMAP DLPFC'
pwas_rosmap_tmp<-pwas_rosmap_tmp[,c('PANEL','ID','rosmap.TWAS.Z','rosmap.sig','rosmap.causal'), with=F]
names(pwas_rosmap_tmp)<-c('Panel','ID','Z','Sig','Coloc')
pwas_rosmap_tmp<-pwas_rosmap_tmp[order(-abs(pwas_rosmap_tmp$Z)),]
pwas_rosmap_tmp<-pwas_rosmap_tmp[!duplicated(paste0(pwas_rosmap_tmp$Panel, pwas_rosmap_tmp$ID)),]
pwas_rosmap_tmp$Method<-'FUSION'
pwas_rosmap_tmp$Type<-'Protein'
pwas_rosmap_tmp$Tissue<-'Brain'
pwas_rosmap_tmp$FOCUS<-F
all_func_res<-rbind(all_func_res, pwas_rosmap_tmp)
pwas_banner_tmp<-pwas_smr_rosmap_banner[,c('ID','banner.TWAS.Z','banner_replicated','banner.causal'), with=F]
pwas_banner_tmp$PANEL<-'Banner et al. DLPFC'
pwas_banner_tmp<-pwas_banner_tmp[,c('PANEL','ID','banner.TWAS.Z','banner_replicated','banner.causal'), with=F]
names(pwas_banner_tmp)<-c('Panel','ID','Z','Sig','Coloc')
pwas_banner_tmp<-pwas_banner_tmp[order(-abs(pwas_banner_tmp$Z)),]
pwas_banner_tmp<-pwas_banner_tmp[!duplicated(paste0(pwas_banner_tmp$Panel, pwas_banner_tmp$ID)),]
pwas_banner_tmp$Method<-'FUSION'
pwas_banner_tmp$Type<-'Protein'
pwas_banner_tmp$Tissue<-'Brain'
pwas_banner_tmp$FOCUS<-F
all_func_res<-rbind(all_func_res, pwas_banner_tmp)
# SMR protein
pwas_smr_rosmap_banner$z_SMR<-abs(qnorm(pwas_smr_rosmap_banner$p_SMR/2))
pwas_smr_rosmap_banner$z_SMR<-sign(pwas_smr_rosmap_banner$b_SMR)*pwas_smr_rosmap_banner$z_SMR
smr_rosmap_tmp<-pwas_smr_rosmap_banner[,c('ID','z_SMR','smr_replicated','smr.causal'), with=F]
smr_rosmap_tmp$PANEL<-'ROSMAP DLPFC'
smr_rosmap_tmp<-smr_rosmap_tmp[,c('PANEL','ID','z_SMR','smr_replicated','smr.causal'), with=F]
names(smr_rosmap_tmp)<-c('Panel','ID','Z','Sig','Coloc')
smr_rosmap_tmp<-smr_rosmap_tmp[order(-abs(smr_rosmap_tmp$Z)),]
smr_rosmap_tmp<-smr_rosmap_tmp[!duplicated(paste0(smr_rosmap_tmp$Panel, smr_rosmap_tmp$ID)),]
smr_rosmap_tmp$Method<-'SMR'
smr_rosmap_tmp$Type<-'Protein'
smr_rosmap_tmp$Tissue<-'Brain'
smr_rosmap_tmp$FOCUS<-F
all_func_res<-rbind(all_func_res, smr_rosmap_tmp)
# Subset to high confidence genes
all_func_res<-all_func_res[all_func_res$ID %in% high_conf,]
# Remove missing values
all_func_res<-all_func_res[complete.cases(all_func_res),]
all_func_res$Group<-paste0(all_func_res$Tissue,'\n',all_func_res$Method,'\n',all_func_res$Type )
all_func_res$Group<-factor(all_func_res$Group, levels=c("Brain\nFUSION\nExpr.","Brain\nFUSION\nSplice","Brain\nSMR\nExpr.","Brain\nFUSION\nProtein","Brain\nSMR\nProtein","Blood\nFUSION\nExpr.","Blood\nSMR\nExpr.","HPA/HPT\nFUSION\nExpr."))
all_func_res$ID<-factor(all_func_res$ID, levels=rev(levels(high_conf_tab$ID)))
all_func_res$Panel[all_func_res$Panel == "Adrenal_Gland"]<-'GTeX Adrenal Gland'
all_func_res$Panel[all_func_res$Panel == "Brain_Cerebellar_Hemisphere"]<-'GTeX Cerebellar Hemisphere'
all_func_res$Panel[all_func_res$Panel == "Brain_Cerebellum"]<-'GTeX Cerebellum'
all_func_res$Panel[all_func_res$Panel == "Brain_Hypothalamus"]<-'GTeX Hypothalamus'
all_func_res$Panel[all_func_res$Panel == "CMC.BRAIN.RNASEQ"]<-'CMC DLPFC'
all_func_res$Panel[all_func_res$Panel == "CMC.BRAIN.RNASEQ_SPLICING"]<-'CMC DLPFC'
all_func_res$Panel[all_func_res$Panel == "Pituitary"]<-'GTeX Pituitary'
all_func_res$Panel[all_func_res$Panel == "PsychENCODE"]<-'PsychENCODE DLPFC'
all_func_res$Panel[all_func_res$Panel == "Whole_Blood"]<-'GTeX'
all_func_res$Panel[all_func_res$Panel == "NTR.BLOOD.RNAARR"]<-'NTR'
all_func_res$Panel[all_func_res$Panel == "Thyroid"]<-'GTeX Thyroid'
all_func_res$Panel[all_func_res$Panel == "Brain_Caudate_basal_ganglia"]<-'GTeX Caudate basalganglia'
all_func_res$Panel[all_func_res$Panel == "YFS.BLOOD.RNAARR"]<-'YFS'
all_func_res$Panel[all_func_res$Panel == "Brain_Cortex"]<-'GTeX Cortex'
all_func_res$Panel[all_func_res$Panel == "Brain_Frontal_Cortex_BA9"]<-'GTeX Frontal Cortex BA9'
all_func_res$Panel[all_func_res$Panel == "Brain_Hippocampus"]<-'GTeX Hippocampus'
all_func_res$Panel[all_func_res$Panel == "Brain_Amygdala"]<-'GTeX Amygdala'
all_func_res$Panel[all_func_res$Panel == "Brain_Anterior_cingulate_cortex_BA24"]<-'GTeX Anterior cingulate cortex BA24'
all_func_res$Panel[all_func_res$Panel == "Brain_Substantia_nigra"]<-'GTeX Substantia nigra'
all_func_res$Panel[all_func_res$Panel == "Brain_Nucleus_accumbens_basal_ganglia"]<-'GTeX Nucleus accumbens basalganglia'
all_func_res$Panel[all_func_res$Panel == "Brain_Putamen_basal_ganglia"]<-'GTeX Nucleus Putamen basalganglia'
all_func_res$Panel[all_func_res$Panel == "eQTLGen_Blood"]<-'eQTLGen'
all_func_res$Panel[all_func_res$Panel == "MetaBrain_Cerebellum"]<-'MetaBrain Cerebellum'
all_func_res$Panel[all_func_res$Panel == "MetaBrain_Basalganglia"]<-'MetaBrain Basalganglia'
all_func_res$Panel[all_func_res$Panel == "MetaBrain_Cortex"]<-'MetaBrain Cortex'
all_func_res$Panel[all_func_res$Panel == "MetaBrain_Hippocampus"]<-'MetaBrain Hippocampus'
all_func_res$Panel<-factor(all_func_res$Panel, levels=c("GTeX Adrenal Gland" ,"GTeX Amygdala" ,"GTeX Anterior cingulate cortex BA24" ,"GTeX Caudate basalganglia" ,"GTeX Cerebellar Hemisphere" ,"GTeX Cerebellum" ,"GTeX Cortex" ,"GTeX Frontal Cortex BA9" ,"GTeX Hippocampus" ,"GTeX Hypothalamus", "GTeX Nucleus accumbens basalganglia","GTeX Nucleus Putamen basalganglia" ,"GTeX Pituitary",'GTeX Substantia nigra' ,"GTeX Thyroid","CMC DLPFC", "PsychENCODE DLPFC", "GTeX" ,"NTR" ,"YFS", "eQTLGen" ,'MetaBrain Basalganglia',"MetaBrain Cerebellum" ,"MetaBrain Cortex" , 'MetaBrain Hippocampus',"ROSMAP DLPFC" ,"Banner et al. DLPFC"))
# Create heatmap
library(ggplot2)
heatmap<-ggplot(data = all_func_res, aes(x = Panel, y = ID)) +
theme_bw() +
geom_tile(aes(fill = Z), width=0.95, height=0.95) +
geom_tile(data=all_func_res[all_func_res$Sig == T,], aes(x = Panel, y = ID), colour='black', fill=NA, size=0.3, width=0.95, height=0.95) +
geom_tile(data=all_func_res[all_func_res$Coloc ==T & all_func_res$Sig == T,], aes(x = Panel, y = ID), colour='green2', fill=NA, size=0.3, width=0.95, height=0.95) +
geom_tile(data=all_func_res[all_func_res$Coloc ==T & all_func_res$Sig == T & all_func_res$FOCUS == T,], aes(x = Panel, y = ID), colour='magenta2', fill=NA, size=0.3, width=0.95, height=0.95) +
scale_fill_gradientn(colours=c("dodgerblue2","white","red"), na.value = 'white',name = "Z-score") +
theme(axis.text.x = element_text(angle = 45, hjust = 1),plot.title = element_text(hjust = 0.5)) +
geom_text(aes(label=round(Z,1)), color="black", size=3) +
labs(title="High confidence genes across panels and methods") +
facet_wrap(~ Group , nrow=1, scales = "free_x")
group_siz<-NULL
for(i in c("Brain\nFUSION\nExpr.","Brain\nFUSION\nSplice","Brain\nSMR\nExpr.","Brain\nFUSION\nProtein","Brain\nSMR\nProtein","Blood\nFUSION\nExpr.","Blood\nSMR\nExpr.","HPA/HPT\nFUSION\nExpr.")){
group_siz<-rbind(group_siz, data.frame(Group=i,
Size=length(unique(all_func_res$Panel[all_func_res$Group==i]))))
}
# Set minimum size to 3 to allow space for labels
group_siz$Size[group_siz$Size < 2]<-2
group_siz$Prop<-group_siz$Size/sum(group_siz$Size)
group_siz$Width<-4*group_siz$Prop
library(grid)
gt = ggplot_gtable(ggplot_build(heatmap))
for(i in 1:nrow(group_siz)){
gt$widths[gt$layout$l[grep(paste0('panel-',i,'-1'), gt$layout$name)]] = group_siz$Width[i]*gt$widths[gt$layout$l[grep(paste0('panel-',i,'-1'), gt$layout$name)]]
}
png('../../docs/figures/gene_con_func_heatmap.png', units = 'px', res=300, height=8000, width=2900)
grid.draw(gt)
a<-dev.off()
High-confidence genes
Conduct an overrepresentation test with PANTHER using the PANTHER API. The service returns results as JSON. The first step is querying the IDs for humans (the taxon) and the annotation datasets.
library(httr)
library(jsonlite)
# the PantherDB URL
panther_db <- "http://pantherdb.org"
# Get list of taxon IDs
supportedgenomes_response <- GET(modify_url(panther_db, path="/services/oai/pantherdb/supportedgenomes"))
# find the taxon ID for humans
supportedgenomes <- fromJSON(content(supportedgenomes_response, "text"))
genomes <- supportedgenomes$search$output$genomes$genome
human_taxon_id <- genomes$taxon_id[which(genomes$name == 'human')]
# get list of annotation datasets
supportedannotdatasets_response <- GET(modify_url(panther_db, path="services/oai/pantherdb/supportedannotdatasets"))
# find GO ids for biological process, molecular function, and cellular components
supportedannotdatasets <- fromJSON(content(supportedannotdatasets_response, "text"))
annotation_data_types <- supportedannotdatasets$search$annotation_data_sets$annotation_data_type
biological_process_id = annotation_data_types$id[which(annotation_data_types$label == "biological_process")]
cellular_component_id = annotation_data_types$id[which(annotation_data_types$label == "cellular_component")]
molecular_function_id = annotation_data_types$id[which(annotation_data_types$label == "molecular_function")]
The next step is to query the overrepresentation test.
# construct enrichment overrepresentation query from gene list
# and annotation ID
overrep_url <- function(gene_list, annot_data_set_id, url=panther_db, organism_id=human_taxon_id) {
modify_url(url,
path="/services/oai/pantherdb/enrich/overrep",
query=list(geneInputList=paste(gene_list, collapse=","),
organism=organism_id,
annotDataSet=annot_data_set_id,
enrichmentTestType="FISHER",
correction="FDR"))
}
# construct URL and query PANTHER. Parse out JSON response
overrep_query <- function(genes, annot_data_set_id, ...) {
# make query
overrep_response <- GET(overrep_url(genes, annot_data_set_id, ...))
# parse JSON
overrep <- fromJSON(content(overrep_response, "text"))
return(overrep)
}
high_conf_overrep_biol <- overrep_query(high_conf, biological_process_id)
high_conf_overrep_mol <- overrep_query(high_conf, molecular_function_id)
high_conf_overrep_cell<- overrep_query(high_conf, cellular_component_id)
# extract results table from the query
panther_format <- function(query) {
results <- query$results$result
results_labels <- results$term
results_terms <- cbind(results_labels,
results[,c('fold_enrichment', 'fdr',
'number_in_list', 'expected',
'number_in_reference', 'pValue')])
return(results_terms)
}
high_conf_overrep_biol_results <- panther_format(high_conf_overrep_biol)
high_conf_overrep_mol_results <- panther_format(high_conf_overrep_mol)
high_conf_overrep_cell_results <- panther_format(high_conf_overrep_cell)
# filter for FDR
knitr::kable(high_conf_overrep_biol_results[which(high_conf_overrep_biol_results$fdr <= 0.05),], caption='GO: Biological Processes')
| id | label | fold_enrichment | fdr | number_in_list | expected | number_in_reference | pValue |
|---|---|---|---|---|---|---|---|
| GO:0007399 | nervous system development | 2.8017844 | 0.0000000 | 64 | 22.8425858 | 2081 | 0.0000000 |
| GO:0007275 | multicellular organism development | 1.9636855 | 0.0000003 | 89 | 45.3229394 | 4129 | 0.0000000 |
| GO:0048731 | system development | 2.0086973 | 0.0000006 | 82 | 40.8224780 | 3719 | 0.0000000 |
| GO:0006928 | movement of cell or subcellular component | 2.7699862 | 0.0000024 | 45 | 16.2455680 | 1480 | 0.0000000 |
| GO:0048856 | anatomical structure development | 1.7571827 | 0.0000061 | 97 | 55.2020011 | 5029 | 0.0000000 |
| GO:0065008 | regulation of biological quality | 1.9295013 | 0.0000054 | 79 | 40.9432221 | 3730 | 0.0000000 |
| GO:0032502 | developmental process | 1.6873732 | 0.0000064 | 103 | 61.0416242 | 5561 | 0.0000000 |
| GO:0032501 | multicellular organismal process | 1.5906211 | 0.0000173 | 113 | 71.0414299 | 6472 | 0.0000000 |
| GO:0022008 | neurogenesis | 2.8306355 | 0.0000167 | 38 | 13.4245471 | 1223 | 0.0000000 |
| GO:0007417 | central nervous system development | 2.9152566 | 0.0001357 | 32 | 10.9767351 | 1000 | 0.0000001 |
| GO:0048699 | generation of neurons | 2.7810901 | 0.0002186 | 33 | 11.8658507 | 1081 | 0.0000002 |
| GO:0032879 | regulation of localization | 1.9460552 | 0.0005392 | 59 | 30.3177425 | 2762 | 0.0000004 |
| GO:0120035 | regulation of plasma membrane bounded cell projection organization | 3.3633077 | 0.0007784 | 23 | 6.8385060 | 623 | 0.0000006 |
| GO:0031344 | regulation of cell projection organization | 3.2790934 | 0.0010997 | 23 | 7.0141338 | 639 | 0.0000010 |
| GO:0048519 | negative regulation of biological process | 1.5849778 | 0.0012006 | 92 | 58.0449755 | 5288 | 0.0000011 |
| GO:0030182 | neuron differentiation | 2.6847280 | 0.0011931 | 30 | 11.1743164 | 1018 | 0.0000012 |
| GO:0009653 | anatomical structure morphogenesis | 2.0430145 | 0.0012404 | 49 | 23.9841663 | 2185 | 0.0000013 |
| GO:0007420 | brain development | 3.0086450 | 0.0012796 | 25 | 8.3093885 | 757 | 0.0000015 |
| GO:0040011 | locomotion | 2.4899198 | 0.0014144 | 34 | 13.6550585 | 1244 | 0.0000017 |
| GO:0048523 | negative regulation of cellular process | 1.6097703 | 0.0014900 | 86 | 53.4237700 | 4867 | 0.0000019 |
| GO:0048513 | animal organ development | 1.8054141 | 0.0014678 | 63 | 34.8950410 | 3179 | 0.0000020 |
| GO:0050890 | cognition | 4.4081502 | 0.0020746 | 15 | 3.4027879 | 310 | 0.0000029 |
| GO:0000902 | cell morphogenesis | 3.0544325 | 0.0021236 | 23 | 7.5300403 | 686 | 0.0000031 |
| GO:0043269 | regulation of ion transport | 3.0499865 | 0.0020833 | 23 | 7.5410170 | 687 | 0.0000032 |
| GO:0034765 | regulation of ion transmembrane transport | 3.4968356 | 0.0023296 | 19 | 5.4334839 | 495 | 0.0000037 |
| GO:0060322 | head development | 2.8327665 | 0.0024886 | 25 | 8.8252951 | 804 | 0.0000041 |
| GO:0048812 | neuron projection morphogenesis | 3.5494196 | 0.0032177 | 18 | 5.0712516 | 462 | 0.0000055 |
| GO:0016477 | cell migration | 2.7132257 | 0.0031044 | 26 | 9.5826898 | 873 | 0.0000055 |
| GO:0050807 | regulation of synapse organization | 5.2307236 | 0.0030892 | 12 | 2.2941376 | 209 | 0.0000057 |
| GO:0120039 | plasma membrane bounded cell projection morphogenesis | 3.5189525 | 0.0032450 | 18 | 5.1151586 | 466 | 0.0000062 |
| GO:0099537 | trans-synaptic signaling | 3.6874526 | 0.0031837 | 17 | 4.6102288 | 420 | 0.0000063 |
| GO:0048858 | cell projection morphogenesis | 3.4890040 | 0.0034045 | 18 | 5.1590655 | 470 | 0.0000070 |
| GO:0032409 | regulation of transporter activity | 4.3529856 | 0.0034164 | 14 | 3.2161834 | 293 | 0.0000072 |
| GO:0050803 | regulation of synapse structure or activity | 5.0847499 | 0.0034608 | 12 | 2.3599981 | 215 | 0.0000075 |
| GO:0050793 | regulation of developmental process | 1.8863947 | 0.0035562 | 51 | 27.0356987 | 2463 | 0.0000079 |
| GO:0010975 | regulation of neuron projection development | 3.5850234 | 0.0039069 | 17 | 4.7419496 | 432 | 0.0000090 |
| GO:0034762 | regulation of transmembrane transport | 3.1523104 | 0.0038431 | 20 | 6.3445529 | 578 | 0.0000091 |
| GO:0051179 | localization | 1.5369118 | 0.0039614 | 87 | 56.6070232 | 5157 | 0.0000096 |
| GO:0007610 | behavior | 3.1306450 | 0.0040182 | 20 | 6.3884599 | 582 | 0.0000100 |
| GO:0051049 | regulation of transport | 2.0918891 | 0.0042273 | 40 | 19.1214726 | 1742 | 0.0000108 |
| GO:0032990 | cell part morphogenesis | 3.3534394 | 0.0044591 | 18 | 5.3676235 | 489 | 0.0000117 |
| GO:0051128 | regulation of cellular component organization | 1.9036191 | 0.0046248 | 49 | 25.7404439 | 2345 | 0.0000124 |
| GO:0007611 | learning or memory | 4.4356667 | 0.0046217 | 13 | 2.9307883 | 267 | 0.0000127 |
| GO:0030154 | cell differentiation | 1.7058260 | 0.0047987 | 64 | 37.5184807 | 3418 | 0.0000135 |
| GO:0048869 | cellular developmental process | 1.6949166 | 0.0050749 | 64 | 37.7599689 | 3440 | 0.0000146 |
| GO:0099536 | synaptic signaling | 3.4416224 | 0.0050814 | 17 | 4.9395308 | 450 | 0.0000149 |
| GO:0048666 | neuron development | 2.6696489 | 0.0056179 | 24 | 8.9899461 | 819 | 0.0000168 |
| GO:0010468 | regulation of gene expression | 1.5456952 | 0.0058984 | 82 | 53.0505610 | 4833 | 0.0000181 |
| GO:0050804 | modulation of chemical synaptic transmission | 3.4378026 | 0.0086574 | 16 | 4.6541357 | 424 | 0.0000271 |
| GO:0099177 | regulation of trans-synaptic signaling | 3.4297137 | 0.0087199 | 16 | 4.6651124 | 425 | 0.0000278 |
| GO:0008088 | axo-dendritic transport | 8.6177350 | 0.0087595 | 7 | 0.8122784 | 74 | 0.0000285 |
| GO:0007416 | synapse assembly | 7.0758656 | 0.0086957 | 8 | 1.1306037 | 103 | 0.0000289 |
| GO:0051252 | regulation of RNA metabolic process | 1.6263838 | 0.0088610 | 67 | 41.1956870 | 3753 | 0.0000300 |
| GO:0050808 | synapse organization | 4.0283096 | 0.0096608 | 13 | 3.2271601 | 294 | 0.0000333 |
| GO:0031346 | positive regulation of cell projection organization | 3.7512493 | 0.0100180 | 14 | 3.7320900 | 340 | 0.0000352 |
| GO:0098609 | cell-cell adhesion | 3.0367257 | 0.0115710 | 18 | 5.9274370 | 540 | 0.0000413 |
| GO:0051674 | localization of cell | 2.3834765 | 0.0113718 | 27 | 11.3279907 | 1032 | 0.0000414 |
| GO:0048870 | cell motility | 2.3834765 | 0.0111757 | 27 | 11.3279907 | 1032 | 0.0000414 |
| GO:0048468 | cell development | 2.0208426 | 0.0118441 | 37 | 18.3091942 | 1668 | 0.0000446 |
| GO:0098742 | cell-cell adhesion via plasma-membrane adhesion molecules | 4.1409895 | 0.0135619 | 12 | 2.8978581 | 264 | 0.0000519 |
| GO:0007268 | chemical synaptic transmission | 3.3993198 | 0.0140627 | 15 | 4.4126475 | 402 | 0.0000547 |
| GO:0098916 | anterograde trans-synaptic signaling | 3.3993198 | 0.0138359 | 15 | 4.4126475 | 402 | 0.0000547 |
| GO:0032412 | regulation of ion transmembrane transporter activity | 4.1098543 | 0.0138451 | 12 | 2.9198115 | 266 | 0.0000557 |
| GO:0010976 | positive regulation of neuron projection development | 5.4661062 | 0.0152156 | 9 | 1.6465103 | 150 | 0.0000621 |
| GO:0008150 | biological_process | 1.0967512 | 0.0150037 | 215 | 196.0335130 | 17859 | 0.0000622 |
| NA | UNCLASSIFIED | 0.3670767 | 0.0147764 | 11 | 29.9664870 | 2730 | 0.0000622 |
| GO:0019219 | regulation of nucleobase-containing compound metabolic process | 1.5711071 | 0.0164384 | 70 | 44.5545680 | 4059 | 0.0000703 |
| GO:0022898 | regulation of transmembrane transporter activity | 3.9609465 | 0.0179813 | 12 | 3.0295789 | 276 | 0.0000780 |
| GO:0050789 | regulation of biological process | 1.2265939 | 0.0187814 | 158 | 128.8119870 | 11735 | 0.0000827 |
| GO:0009892 | negative regulation of metabolic process | 1.6882067 | 0.0191076 | 55 | 32.5789499 | 2968 | 0.0000853 |
| GO:1904062 | regulation of cation transmembrane transport | 3.4378026 | 0.0191091 | 14 | 4.0723687 | 371 | 0.0000866 |
| GO:0050794 | regulation of cellular process | 1.2362369 | 0.0198093 | 153 | 123.7626888 | 11275 | 0.0000910 |
| GO:1900244 | positive regulation of synaptic vesicle endocytosis | 45.5508850 | 0.0217047 | 3 | 0.0658604 | 6 | 0.0001011 |
| GO:0032989 | cellular component morphogenesis | 2.8175805 | 0.0220585 | 18 | 6.3884599 | 582 | 0.0001042 |
| GO:0001764 | neuron migration | 5.7842394 | 0.0229921 | 8 | 1.3830686 | 126 | 0.0001100 |
| GO:0051130 | positive regulation of cellular component organization | 2.2623171 | 0.0241427 | 26 | 11.4926417 | 1047 | 0.0001171 |
| GO:0065007 | biological regulation | 1.2055331 | 0.0238295 | 165 | 136.8689106 | 12469 | 0.0001171 |
| GO:0048522 | positive regulation of cellular process | 1.4284250 | 0.0266947 | 90 | 63.0064598 | 5740 | 0.0001329 |
| GO:0007156 | homophilic cell adhesion via plasma membrane adhesion molecules | 4.8804520 | 0.0280170 | 9 | 1.8440915 | 168 | 0.0001412 |
| GO:0042100 | B cell proliferation | 10.8454488 | 0.0299198 | 5 | 0.4610229 | 42 | 0.0001527 |
| GO:0031175 | neuron projection development | 2.6386183 | 0.0295804 | 19 | 7.2007383 | 656 | 0.0001529 |
| GO:0009889 | regulation of biosynthetic process | 1.5348072 | 0.0311534 | 70 | 45.6083345 | 4155 | 0.0001630 |
| GO:0010629 | negative regulation of gene expression | 2.3596179 | 0.0366943 | 23 | 9.7473408 | 888 | 0.0001943 |
| GO:1903423 | positive regulation of synaptic vesicle recycling | 34.1631637 | 0.0364601 | 3 | 0.0878139 | 8 | 0.0001954 |
| GO:0001505 | regulation of neurotransmitter levels | 4.1982382 | 0.0363141 | 10 | 2.3819515 | 217 | 0.0001970 |
| GO:0009893 | positive regulation of metabolic process | 1.5517859 | 0.0365623 | 65 | 41.8872213 | 3816 | 0.0002006 |
| GO:0007155 | cell adhesion | 2.2680939 | 0.0387446 | 24 | 10.5815727 | 964 | 0.0002151 |
| GO:2001257 | regulation of cation channel activity | 4.5550885 | 0.0411314 | 9 | 1.9758123 | 180 | 0.0002310 |
| GO:0048518 | positive regulation of biological process | 1.3836400 | 0.0460579 | 95 | 68.6594784 | 6255 | 0.0002616 |
# filter for FDR
knitr::kable(high_conf_overrep_mol_results[which(high_conf_overrep_mol_results$fdr <= 0.05),], caption='GO: Molecular Functions')
| id | label | fold_enrichment | fdr | number_in_list | expected | number_in_reference | pValue |
|---|
# filter for FDR
knitr::kable(high_conf_overrep_cell_results[which(high_conf_overrep_cell_results$fdr <= 0.05),], caption='GO: Cellular Components')
| id | label | fold_enrichment | fdr | number_in_list | expected | number_in_reference | pValue |
|---|---|---|---|---|---|---|---|
| GO:0043005 | neuron projection | 3.534695 | 0.0000000 | 53 | 14.9942202 | 1366 | 0.0000000 |
| GO:0045202 | synapse | 3.323892 | 0.0000000 | 49 | 14.7417553 | 1343 | 0.0000000 |
| GO:0030425 | dendrite | 4.562447 | 0.0000000 | 31 | 6.7945991 | 619 | 0.0000000 |
| GO:0097447 | dendritic tree | 4.547753 | 0.0000000 | 31 | 6.8165525 | 621 | 0.0000000 |
| GO:0036477 | somatodendritic compartment | 3.881259 | 0.0000000 | 36 | 9.2753412 | 845 | 0.0000000 |
| GO:0098794 | postsynapse | 4.261212 | 0.0000000 | 29 | 6.8055758 | 620 | 0.0000000 |
| GO:0030424 | axon | 4.140989 | 0.0000001 | 29 | 7.0031570 | 638 | 0.0000000 |
| GO:0120025 | plasma membrane bounded cell projection | 2.400627 | 0.0000001 | 59 | 24.5769100 | 2239 | 0.0000000 |
| GO:0042995 | cell projection | 2.329969 | 0.0000001 | 60 | 25.7514207 | 2346 | 0.0000000 |
| GO:0030054 | cell junction | 2.411011 | 0.0000001 | 56 | 23.2267716 | 2116 | 0.0000000 |
| GO:0098984 | neuron to neuron synapse | 4.917425 | 0.0000048 | 19 | 3.8638108 | 352 | 0.0000000 |
| GO:0030426 | growth cone | 7.177715 | 0.0000134 | 13 | 1.8111613 | 165 | 0.0000001 |
| GO:0098793 | presynapse | 3.876671 | 0.0000179 | 22 | 5.6749721 | 517 | 0.0000001 |
| GO:0030427 | site of polarized growth | 6.925865 | 0.0000169 | 13 | 1.8770217 | 171 | 0.0000001 |
| GO:0014069 | postsynaptic density | 4.809721 | 0.0000266 | 17 | 3.5345087 | 322 | 0.0000002 |
| GO:0032279 | asymmetric synapse | 4.736178 | 0.0000307 | 17 | 3.5893924 | 327 | 0.0000002 |
| GO:0099572 | postsynaptic specialization | 4.489073 | 0.0000591 | 17 | 3.7869736 | 345 | 0.0000005 |
| GO:0098978 | glutamatergic synapse | 4.417056 | 0.0001494 | 16 | 3.6223226 | 330 | 0.0000013 |
| GO:0097060 | synaptic membrane | 4.086359 | 0.0001815 | 17 | 4.1601826 | 379 | 0.0000017 |
| GO:0031224 | intrinsic component of membrane | 1.513522 | 0.0002915 | 99 | 65.4103648 | 5959 | 0.0000029 |
| GO:0099240 | intrinsic component of synaptic membrane | 6.110485 | 0.0003396 | 11 | 1.8001846 | 164 | 0.0000035 |
| GO:0045211 | postsynaptic membrane | 4.637908 | 0.0003337 | 14 | 3.0186022 | 275 | 0.0000036 |
| GO:0150034 | distal axon | 4.621104 | 0.0003322 | 14 | 3.0295789 | 276 | 0.0000037 |
| GO:0043197 | dendritic spine | 5.792598 | 0.0004815 | 11 | 1.8989752 | 173 | 0.0000057 |
| GO:0044309 | neuron spine | 5.726397 | 0.0005125 | 11 | 1.9209287 | 175 | 0.0000063 |
| GO:0099699 | integral component of synaptic membrane | 5.993538 | 0.0008989 | 10 | 1.6684637 | 152 | 0.0000115 |
| GO:0098839 | postsynaptic density membrane | 8.008947 | 0.0009453 | 8 | 0.9988829 | 91 | 0.0000125 |
| GO:0098797 | plasma membrane protein complex | 2.772115 | 0.0016199 | 22 | 7.9361795 | 723 | 0.0000222 |
| GO:0016021 | integral component of membrane | 1.460770 | 0.0027585 | 93 | 63.6650639 | 5800 | 0.0000392 |
| GO:0043025 | neuronal cell body | 3.154236 | 0.0029359 | 17 | 5.3895770 | 491 | 0.0000432 |
| GO:0099634 | postsynaptic specialization membrane | 6.176391 | 0.0047021 | 8 | 1.2952547 | 118 | 0.0000714 |
| GO:0099055 | integral component of postsynaptic membrane | 6.124489 | 0.0048166 | 8 | 1.3062315 | 119 | 0.0000755 |
| GO:0120111 | neuron projection cytoplasm | 7.085693 | 0.0056250 | 7 | 0.9879062 | 90 | 0.0000909 |
| GO:0098936 | intrinsic component of postsynaptic membrane | 5.830513 | 0.0062685 | 8 | 1.3720919 | 125 | 0.0001044 |
| GO:0034702 | ion channel complex | 3.656258 | 0.0093616 | 12 | 3.2820438 | 299 | 0.0001605 |
| GO:0005886 | plasma membrane | 1.407450 | 0.0092062 | 92 | 65.3664578 | 5955 | 0.0001624 |
| GO:0005891 | voltage-gated calcium channel complex | 10.352474 | 0.0102905 | 5 | 0.4829763 | 44 | 0.0001865 |
| GO:0044297 | cell body | 2.770537 | 0.0105730 | 17 | 6.1359949 | 559 | 0.0001969 |
| GO:0044295 | axonal growth cone | 15.183628 | 0.0118159 | 4 | 0.2634416 | 24 | 0.0002258 |
| GO:0034703 | cation channel complex | 4.103683 | 0.0119762 | 10 | 2.4368352 | 222 | 0.0002347 |
| GO:0000785 | chromatin | 2.073745 | 0.0122293 | 29 | 13.9843606 | 1274 | 0.0002457 |
| GO:0016234 | inclusion body | 7.098839 | 0.0140122 | 6 | 0.8452086 | 77 | 0.0002883 |
| GO:0098590 | plasma membrane region | 2.048875 | 0.0177734 | 28 | 13.6660353 | 1245 | 0.0003745 |
| GO:0099061 | integral component of postsynaptic density membrane | 8.759786 | 0.0177102 | 5 | 0.5707902 | 52 | 0.0003818 |
| GO:0016020 | membrane | 1.245586 | 0.0215960 | 136 | 109.1855845 | 9947 | 0.0004761 |
| GO:0071944 | cell periphery | 1.358883 | 0.0226057 | 96 | 70.6462674 | 6436 | 0.0005095 |
| GO:0099146 | intrinsic component of postsynaptic density membrane | 8.134087 | 0.0227439 | 5 | 0.6146972 | 56 | 0.0005237 |
| GO:0031226 | intrinsic component of plasma membrane | 1.819955 | 0.0297481 | 35 | 19.2312400 | 1752 | 0.0006996 |
| GO:0005798 | Golgi-associated vesicle | 5.941420 | 0.0292748 | 6 | 1.0098596 | 92 | 0.0007028 |
| GO:1904115 | axon cytoplasm | 7.346917 | 0.0329274 | 5 | 0.6805576 | 62 | 0.0008066 |
| GO:0005794 | Golgi apparatus | 1.818729 | 0.0339222 | 33 | 18.1445432 | 1653 | 0.0008476 |
| GO:0043198 | dendritic shaft | 10.122419 | 0.0357252 | 4 | 0.3951625 | 36 | 0.0009102 |
| GO:0031515 | tRNA (m1A) methyltransferase complex | 60.734513 | 0.0442336 | 2 | 0.0329302 | 3 | 0.0011486 |
| GO:0005887 | integral component of plasma membrane | 1.800215 | 0.0491457 | 33 | 18.3311477 | 1670 | 0.0013003 |
| GO:1902495 | transmembrane transporter complex | 2.854363 | 0.0497145 | 12 | 4.2040896 | 383 | 0.0013397 |
| GO:0034704 | calcium channel complex | 6.507269 | 0.0489867 | 5 | 0.7683715 | 70 | 0.0013441 |